package cool.webstudy.admin.service;

import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cool.webstudy.admin.model.dto.dict.type.CreateDictTypeDTO;
import cool.webstudy.admin.model.dto.dict.type.PaginationQueryDictTypeListDTO;
import cool.webstudy.admin.model.dto.dict.type.UpdateDictTypeDTO;
import cool.webstudy.admin.model.vo.dict.type.PaginationQueryDictTypeListVO;
import cool.webstudy.admin.model.vo.dict.type.QueryEnabledDictTypeRoughInfoVO;

import java.util.List;
import java.util.Map;

public interface DictTypeService {
   /**
    *
    * @param dto 创建字典类型接口请求参数模型
    * @return 是否成功的标志
    * @description: 创建字典类型
    */
   Boolean createDictType(CreateDictTypeDTO dto);
   /**
    *
    * @param unCode 要删除的字典类型id
    * @return 是否成功的标志
    * @description: 创建字典类型
    */
   Boolean deleteDictType(String unCode);
   /**
    *
    * @param dto 更新字典类型接口请求参数模型
    * @return 是否成功的标志
    * @description: 更新字典类型
    */
   Boolean updateDictType(UpdateDictTypeDTO dto);
   /**
    *
    * @param dto 分页获取字典类型表接口请求信息模型
    * @return 是否成功的标志
    * @description: 分页查询字典类型
    */
   Page<PaginationQueryDictTypeListVO> paginationQueryDictTypeList(PaginationQueryDictTypeListDTO dto);
   /**
    * @return List<Tree<String>> 树形数据
    * @description: 获取树形字典类型数据接口
    */
   List<Tree<String>> queryDictTypeTree();
   /**
    * @return Map<String>
    * @description: 获取字典类型基本信息map，信息包含业务主键和字典类型名称的一一对应关系
    */
   Map<String,String> queryDictTypeRoughInfoMap();
   /**
    * @return List<QueryEnabledDictTypeRoughInfoVO> 获取启用的字典类型基本信息列表接口响应参数模型
    * @description: 获取启用的字典类型基本信息列表接口
    */
   List<QueryEnabledDictTypeRoughInfoVO> queryEnabledDictTypeRoughInfoList();
   /**
    * @param dictType 字典类型
    * @return String 字典类型业务主键
    * @description: 根据字典类型获取字典类型业务主键
    */
   String queryDictTypeUnCodeByDictType(String dictType);
}
